feat: implement enhanced transaction history retrieval#7689
Merged
Conversation
…aMask/core into enhanced_transaction_history
matthewwalsh0
requested changes
Jan 23, 2026
|
|
||
| readonly #updateTransactions?: boolean; | ||
|
|
||
| readonly #isEnhancedHistoryEnabled: boolean; |
Member
There was a problem hiding this comment.
Minor, alphabetical properties.
Contributor
Author
There was a problem hiding this comment.
Variable name is changed now.
| let connectionStateChangedHandler: (info: WebSocketConnectionInfo) => void; | ||
| let selectedAccountChangedHandler: () => void; | ||
|
|
||
| beforeEach(() => { |
Member
There was a problem hiding this comment.
Minor, we usually avoid nested beforeEach and variables in describe to help readability and reuse.
Contributor
Author
There was a problem hiding this comment.
I made the beforeEach small but these test cases need different mocking for feature flag thus this nested beforeEach is needed.
| */ | ||
| export enum FeatureFlag { | ||
| EIP7702 = 'confirmations_eip_7702', | ||
| EnhancedHistoryRetrieval = 'enhanced_history_retrieval', |
Member
There was a problem hiding this comment.
Since this is a stand alone boolean, can we instead re-use confirmations_incoming_transactions?
And could we be more specific with the property name, such as useWebsockets?
Contributor
Author
There was a problem hiding this comment.
Good point, I updated the PR
…aMask/core into enhanced_transaction_history
packages/transaction-controller/src/helpers/IncomingTransactionHelper.ts
Show resolved
Hide resolved
matthewwalsh0
approved these changes
Jan 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation
This PR implements enhanced transaction history retrieval for the IncomingTransactionHelper. When the enhanced_history_retrieval feature flag is enabled and WebSocket is connected, incoming transactions are fetched via event-driven updates instead of polling, reducing unnecessary API calls and improving responsiveness.
References
Ref: https://github.com/MetaMask/MetaMask-planning/issues/6682
Checklist
Note
Introduces enhanced, event-driven incoming transaction history retrieval.
IncomingTransactionHelpersubscribes toBackendWebSocketService:connectionStateChanged,AccountActivityService:transactionUpdated, andAccountsController:selectedAccountChange; polling is skipped when enabledisIncomingTransactionsUseWebsocketsEnabledfeature flag and tests; retains legacy polling when disabledAllowedEventsinTransactionControllerand adds@metamask/core-backenddependency plus TS project referencesWritten by Cursor Bugbot for commit 8453f3b. This will update automatically on new commits. Configure here.